System and method for sharing tagged multimedia content elements

ABSTRACT

A system and method for sharing tagged multimedia content elements. The method comprises: receiving a request to analyze at least one multimedia content element that exists on at least a first user device; generating a signature for at least a portion of each of the at least one multimedia content element; generating at least one tag that is searchable by a second user device respective of each of the generated signatures; sending the at least one searchable tag to be stored, wherein the at least one searchable tag is stored such that, responsive to a query received from the second user device, at least one multimedia content element is shared with at least the second user device respective of a match between at least one portion of the query and at least one of the at least one tag.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/884,081 filed on Sep. 29, 2013, the contents of which are hereby incorporated by reference. This application is also a continuation-in-part (CIP) of U.S. patent application Ser. No. 14/050,991 filed Oct. 10, 2013, now pending. The 14/050,991 Application claims the benefit of U.S. Provisional Application No. 61/860,261 filed on Jul. 31, 2013, and is a CIP of U.S. patent application Ser. No. 13/602,858 filed Sep. 4, 2012, now allowed, which is a continuation of U.S. patent application Ser. No. 12/603,123, filed on Oct. 21, 2009, now U.S. Pat. No. 8,266,185. The 12/603,123 application is a continuation-in-part of:

(1) U.S. patent application Ser. No. 12/084,150 filed Apr. 7, 2009, now U.S. Pat. No. 8,655,801, which is the National Stage of International Application No. PCT/IL2006/001235 filed on Oct. 26, 2006, which claims foreign priority from Israeli Application No. 171577 filed on Oct. 26, 2005 and Israeli Application No. 173409 filed on Jan. 29, 2006;

(2) U.S. patent application Ser. No. 12/195,863 filed Aug. 21, 2008, now U.S. Pat. No. 8,326,775, which claims priority under 35 USC 119 from Israeli Application No. 185414 filed on Aug. 21, 2007, and which is also a continuation-in-part of the above-referenced U.S. patent application Ser. No. 12/084,150;

(3) U.S. patent application Ser. No. 12/348,888 filed Jan. 5, 2009, now pending, which is a CIP of the above-referenced U.S. patent application Ser. No. 12/084,150 and the above-referenced U.S. patent application Ser. No. 12/195,863; and

(4) U.S. patent application Ser. No. 12/538,495, filed Aug. 10, 2009, now U.S. Pat. No. 8,312,031, which is a CIP of the above-referenced U.S. patent application Ser. No. 12/084,150, the above-referenced U.S. patent application Ser. No. 12/195,863, filed on Aug. 21, 2008; and the above-referenced U.S. patent application Ser. No. 12/348,888.

All of the applications referenced above are herein incorporated by reference.

TECHNICAL FIELD

The present invention relates generally to the analysis of multimedia content displayed in a web-page, and more specifically to a system and method for enabling sharing of multimedia content stored in a plurality of user devices based on an analysis of the multimedia content.

BACKGROUND

Search engines are ubiquitously used to search for information, typically by using a search query, over the World Wide Web. A search query refers to a query that a user provides such a search engine in order to receive search results.

Searching for multimedia content elements (e.g., picture, video clips, audio clips, etc.) stored locally on the user device as well as on the web may not be an easy task. According to the prior art solutions, respective of an input query, a search is performed through the metadata of the available multimedia content elements. The metadata is typically associated with a multimedia content element and includes parameters such as the element's size, type, name, a short description, and so on. The description and name of the element are typically provided by the creator of the element or by a person saving or placing the element in a local device and/or a website. Therefore, metadata of an element, in most cases, is not sufficiently descriptive of the multimedia element. For example, a user may save a picture featuring a cat under the file name of “weekend fun.” In such an example, the metadata would not be descriptive of the contents of the picture.

As a result, searching for multimedia content elements based solely on their metadata may not provide the most accurate results. Following the above example, the input query ‘cat’ would not return the picture saved under “weekend fun”. In computer science, a tag is a non-hierarchical keyword or term assigned to a piece of information such as, but not limited to, multimedia content elements.

Another technique for textual description of multimedia content elements is known as tagging. The tagging of content elements (e.g., images) allows annotating an image using a set of fixed keywords and determining their relevance to the image. Tagging has gained wide popularity due to the growth of social networking, photograph sharing, and bookmarking of websites. Some websites allow users to create and manage tags that categorize content using simple keywords. The users of such sites manually add and define the descriptions of the tags. As such, the tagging may not accurately describe the multimedia content element. For example, a user may tag a picture of a Statue of Liberty as “my vacation,” wherein said tag indicates the context of the image but does not include any description of the actual content of the image. Furthermore, some websites limit the tagging options of multimedia elements, for example, by only allowing tagging of people shown in a picture. Therefore, searching for all multimedia content elements solely based on the tags would not be efficient.

It would therefore be advantageous to provide an efficient solution for providing search results respective of the content of multimedia content in response to a search query.

SUMMARY

The various disclosed embodiments include a method for sharing tagged multimedia content elements. The method comprises: receiving a request to analyze at least one multimedia content element that exists on at least a first user device; generating a signature for at least a portion of each of the at least one multimedia content element; generating at least one tag that is searchable by a second user device respective of each of the generated signatures; sending the at least one searchable tag to be stored, wherein the at least one searchable tag is stored such that, responsive to a query received from the second user device, at least one multimedia content element is shared with at least the second user device respective of a match between at least one portion of the query and at least one of the at least one tag.

The various disclosed embodiments also include a system for sharing tagged multimedia content elements. The system comprises: a processor; a database; and, a memory connected to the processor, the memory contains instructions that when executed by the processor, configure the system to: receive a request to analyze at least one multimedia content element that exists on at least a first user device; generate a signature for at least a portion of each of the at least one multimedia content element; generate at least one tag that is searchable by a second user device respective of each of the generated signatures; send the at least one searchable tag to be stored, wherein the at least one searchable tag is stored such that, responsive to a query received from the second user device, at least one multimedia content element is shared with at least the second user device respective of a match between at least one portion of the query and at least one of the at least one tag.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the disclosed embodiments will be apparent from the following detailed description taken in conjunction with the accompanying drawings.

FIG. 1 is a schematic block diagram of a network system utilized to describe the various embodiments;

FIG. 2 is a flowchart describing a process of identifying multimedia content elements collected by a user device;

FIG. 3 is a flowchart describing the process of searching and sharing multimedia content elements collected by a user device;

FIG. 4 is a block diagram depicting the basic flow of information in the signature generator system; and

FIG. 5 is a diagram showing the flow of patches generation, response vector generation, and signature generation in a large-scale speech-to-text system.

FIG. 6 is a flowchart illustrating determination of multimedia content elements that are appropriate to a query according to an embodiment.

DETAILED DESCRIPTION

It is important to note that the embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.

The various disclosed embodiments include a method and system for sharing multimedia content that exists on a plurality of user devices. One or more multimedia content elements is received from a first user device. The multimedia content elements are analyzed, and a signature is generated respective of each analyzed multimedia content element. A tag is generated respective of each of the generated signature. Each tag is stored in a data storage unit accessible to a plurality of user devices through the network. Upon receiving a search query from a second user device, the data storage unit is searched for tags related to the user's query. A multimedia content element is extracted from the first user device respective of the tags associated thereto and the extracted multimedia content elements are provided to the second user device.

FIG. 1 shows an exemplary and non-limiting schematic diagram of a network system 100 utilized to describe the various disclosed embodiments. A network 110 is used to communicate between different parts of the network system 100. The network 110 may be, but is not limited to, the Internet, the world-wide-web (WWW), a wired or wireless network, a local area network (LAN), a wide area network (WAN), a metro area network (MAN), and other networks capable of enabling communication between the elements of the system 100.

Further connected to the network 110 are user devices 120-1 through 120-n (hereinafter referred to collectively as user devices 120 or individually as a user device 120). A user device 120 may be, but is not limited to, a personal computer (PC), a personal digital assistant (PDA), a mobile phone, a smart phone, a tablet computer, an electronic wearable device (e.g., glasses, a watch, etc.), and other kinds of wired and mobile appliances equipped with capabilities such as browsing, viewing, capturing, storing, listening, filtering, and managing, that are enabled as discussed further herein below.

Each user device 120 may have one of a plurality of application software (apps) 125-1 through 125-n (hereinafter referred to collectively as Apps 125 or individually as an App 125). As a non-limiting example, the user device 120-1 may further comprise an application software (app) 125-1 installed therein. The app 125-1 may be downloaded from an application repository such as, e.g., the AppStore®, Google Play®, or any repositories hosting software applications. The application 125 may be pre-installed in the user device 120. In one embodiment, the application 125 is a web-browser.

Also connected to the network 110 is a data warehouse 150 that at least stores tags related to the multimedia content elements. In the embodiment illustrated in FIG. 1, a server 130 communicates with the data warehouse 150 through the network 110. In other non-limiting configurations, the server 130 is directly connected to the data warehouse 150.

The system 100 shown in FIG. 1 includes a signature generator system (SGS) 140 and a deep-content classification (DCC) system 160 which are utilized by the server 130 to perform the various disclosed embodiments. The SGS 140 and the DCC system 160 may be connected to the server 130 directly or through the network 110. In certain configurations, the DCC system 160 and the SGS 140 may be embedded in the server 130. It should be noted that the server 130 typically comprises a processing system (not shown) and a memory (not shown). The processing system is coupled to the memory, which is configured to contain instructions that can be executed by the processing system. The server 130 also includes a network interface (not shown) to the network 110. In one embodiment the server 130 is commutatively connected or includes an array of Computational Cores configured as discussed in more detail below. In another embodiment, the processing system may be implemented using the array of Computational Cores.

The SGS 140 may be connected to the server 130 directly or through the network 110. The server 130 is enabled to receive and serve multimedia content elements, and causes the SGS 140 to generate a signature respective of the multimedia content elements. The process for generating the signatures for multimedia content is explained in further detail herein below with respect to FIGS. 4 and 5. The SGS 140 typically comprises a processing system and a memory that contains instructions that can be executed by the processor. The processing system of the SGS 140 may be realized as the array of Computational Cores. In an embodiment, the processing system of each of the server 130 and SGS 140 may comprise or be a component of a larger processing system implemented with one or more processors. The one or more processors may be implemented with any combination of general-purpose microprocessors, microcontrollers, digital signal processors (DSPs), field programmable gate array (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic, discrete hardware components, dedicated hardware finite state machines, or any other suitable entities that can perform calculations or other manipulations of information.

The various embodiments disclosed herein may be realized using the server 130 and a signature generator system (SGS) 140. The server 130 is configured to receive and serve multimedia content elements. This includes, but is not limited to, generating at least one tag for each received multimedia content element, saving the received elements and their associated tags in the data warehouse 150 and/or the user device 120, and searching for multimedia elements using the assigned tags responsive of an input query. The tag is a textual index term assigned to certain content. A multimedia content element may include, for example, an image, a graphic, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, and an image of signals (e.g., spectrograms, phasograms, scalograms, etc.), and/or combinations thereof and portions thereof.

Specifically, according to the disclosed embodiments, the server 130 is configured to receive multimedia content elements from the user device 120 accompanied by a request to tag the elements. With this aim, the server 130 sends each received multimedia content element to the SGS 140 and/or to the DCC system 160. The destination for each multimedia content element (e.g., the SGS 140 and/or DCC system 160) may be a default configuration for the results by each approach.

In an embodiment, the SGS 140 receives a multimedia content element and returns at least one signature respective thereto. The generated signature(s) may be robust to noise and distortion. The process for generating the signatures is discussed in detail below.

Using the generated signature(s), the server 130 is configured to search for similar multimedia content elements in the data warehouse 150. The process of matching between multimedia content elements is discussed in further detail below with respect to FIGS. 4 and 5.

Upon identification of similar multimedia content elements, the server 130 is configured to extract tags associated with the identified elements and to assign such tags to the received multimedia content elements. It should be noted that if multiple tags are found to be matching, the server 130 may correlate between the tags or select tags that are most descriptive and/or most strongly related to the received element. Such determination may be achieved by selecting tags associated with multimedia content elements such that their respective signatures match the input element over a predefined threshold.

According to another embodiment, the tag for a received multimedia content element is determined based on a concept structure (or concept). A concept is a collection of signatures representing elements of the unstructured data and metadata describing the concept. As a non-limiting example, a ‘Superman concept’ is a signature-reduced cluster of signatures describing elements (such as multimedia elements) related to, e.g., a Superman cartoon: a set of metadata representing proving textual representation of the Superman concept. Techniques for generating concept structures are also described in the above-referenced U.S. Pat. No. 8,266,185 (hereinafter the '185 Patent) to Raichelgauz et al., which is assigned to common assignee, and is incorporated hereby by reference for all that it contains.

According to this embodiment, a query is sent to the DCC system 160 to match a received content element of at least one concept structure. If such a match is found, then the metadata of the concept structure is used to tag the received content element. The identification of a concept matching the received multimedia content element includes matching at least one signature generated for the received element (such signature(s) may be produced either by the SGS 140 or the DCC system 160) and comparing the element's signatures to signatures representing a concept structure. The matching can be performed across all concept structures maintained by the system DCC 160.

It should be noted that, if the query sent to the DCC system 160 returns multiple concept structures, a correlation for matching concept structures is performed to generate a tag that best describes the element. The correlation can be achieved by identifying a ratio between signatures' sizes, a spatial location of each signature, and using the probabilistic models.

The one or more tags are assigned to each of the multimedia content elements returned to the user device 120. In addition, the server 130 may save each of the received elements and their respective tags in the storage device. As a non-liming example, if the multimedia content element received is a picture in which a dog, a human, and a ball are shown, signatures are generated respective of these objects (i.e., the dog, the human, and the ball). Based on the signatures, one or more tags are generated by the server 130 and assigned to the multimedia content element. Because the tag is generated respective of the contents of the picture, the tags may be “dog lovers”, “man plays with his dog”, and similarly descriptive tags.

In another embodiment, the multimedia content elements can be searched using the tags, either locally in the user device 120 or remotely in the data warehouse 150. The tags may be previously generated tags or keywords, wherein both such tags are entered by a user as a query. Upon receiving a query or a portion thereof from a user, the search returns one or more multimedia content elements respective of the correlation of the query and the elements' tags. It should be noted that when a local search is performed, for example, by means of the application 125, no connection to the network 110 is required.

In another embodiment, the user may modify a tag created by the server 130. As an example, for an image showing a cat and a man, the tags “cat” and “man” are generated. The user may add or modified the tag “cat” to “Felix,” thereby characterizing the cat. The modified tag is then stored in the data warehouse 150. Upon subsequently receiving a query “Felix the cat”, the server 130 provides all multimedia content in which the cat “Felix” is shown. According to this embodiment, multimedia content elements in which other cats are shown will not be returned to the in response to the query.

It should further be noted that the signatures generated for multimedia content elements would enable accurate tagging of the elements, because the signatures generated for the multimedia content elements, according to the disclosed embodiments, allow for recognition and classification of multimedia content.

In yet another embodiment, the server 130 is configured to allow the sharing of multimedia content elements between user devices 120 based on generated tags. To this end, a multimedia content element is received from a first user device, e.g., the user device 120-1, from the server 130. A signature is generated for the multimedia content element. A tag is provided respective of each of the generated signatures as discussed above. Each tag is stored in the data warehouse 150.

A second user device, e.g., the user device 120-n, submits a search query to the server 130 to search for content elements. The server 130 is configured to search the data warehouse 150 to find tags that match the query. A multimedia content element associated with the matching tags is obtained from the first user device 120-1 and shared with the second user device 120-n. It should be noted that such sharing can be enabled through a cloud platform. It should be further noted that multimedia content associated with the first and second user devices may be saved in a remote storage (e.g., a cloud storage) associated with these devices.

FIG. 2 depicts an exemplary and non-limiting flowchart 200 describing a method for tagging multimedia content elements according to an embodiment. A tagging of an element is the association of a tag with a multimedia content element. In S210, at least one multimedia content element is received.

In S220, at least one signature is generated for the multimedia content element. The signature(s) are generated by a signature generator (e.g., SGS 140) as described further herein below with respect to FIGS. 4 and 5.

In S230, at least one tag is created and assigned to the received multimedia content element based on the generated signatures. According to one embodiment, S230 includes searching for at least one matching multimedia content element in the data warehouse 150 and using the tag of the matching content element to tag the received content element. Two signatures are determined to be matching if their respective signatures at least partially match (e.g., in comparison to a predefined threshold). According to another embodiment, S230 includes querying a DCC system with the generated signature to identify at least one matching concept structure. The metadata of the matching concept structure is used to tag the received multimedia element.

In S240, the multimedia content element together with its respective tags is sent to the user device to be stored locally on the user device. In addition, the multimedia content element together with its respective tag(s) may be saved in a data warehouse (e.g., warehouse 150). In S250, it is checked whether additional multimedia content elements have been received for processing, and if so, execution continues with S220 where a new element is selected for processing; otherwise, execution terminates.

As a non-limiting example, a request to analyze a multimedia content element on a user's smartphone is received. In this example, the multimedia content element to be analyzed is an image featuring a man, a fishing pole, and a lake. A signature is generated respective thereto. Respective of the signature, several tags may be generated. In this example, the tags “man,” “fishing pole,” “lake,” “fishing,” “sports,” and “hobbies” are generated. The generated tags are stored in a database.

FIG. 3 depicts an exemplary and non-limiting flowchart 300 describing the process of sharing multimedia content between user devices of a plurality of user devices according to an embodiment. In S310, a search query or a portion thereof is received from a user of a user device such as, for example, the user device 120-1. According to one embodiment, one or more suggested queries are extracted from a database (e.g., the data warehouse 150) and the one or more suggested queries are provided to the user device.

In S320, based on the input query, a search is performed for appropriate multimedia content elements existing on a plurality of user devices based on a correlation between the query and the tags assigned to the multimedia content elements. Determination of multimedia content elements that are appropriate to a query is described in further detail herein below with respect to FIG. 6.

In S330, it is checked whether at least one matching tag has been identified and, if so, execution continues with S350; otherwise, execution continues with S340. A match may be an identical match, or a related tag. A tag may be related to a query if, for example, the tag and the query are noted as related by, e.g., a user of a user device of the plurality of user devices, or if signatures generated respective of the tag and the query demonstrate signature matching above a predefined threshold. In some embodiments, an identical match between the tag and the query may be required to obtain a match between tags.

In S340, a notification that no matching tags have been identified is sent to the user and execution terminates. In S350, respective of the matching tags, the appropriate multimedia content elements are provided to the user device 120-1. It should be noted that the multimedia content elements may also be obtained from a user device that requests the tagging of such elements. It should be further noted that the search results, i.e. content elements that match the tags, may be shared with a plurality user devices. In S360, it is checked whether there are additional queries and, if so, execution continues with S310; otherwise, execution terminates.

As a non-limiting example, the query “dogs” is received from a user device. A search for appropriate multimedia content elements existing on a plurality of user devices based on the correlation between the query “dogs” and the tags associated with the multimedia content elements is performed. Respective of the search, it is determined that the tags “dog” and “dogs” have been identified respective of various multimedia content elements existing on the plurality of user devices. It is determined that the tags “dog” and “dogs” are both sufficiently related to the query “dog.” In this example, an image containing one dog, a video containing several dogs, and an audio clip featuring a dog barking are determined to be appropriate multimedia content elements bearing matching tags. These multimedia content elements are provided to the querying user device.

FIGS. 4 and 5 illustrate the generation of signatures for the multimedia content elements by the SGS 140 according to one embodiment. An exemplary high-level description of the process for large scale matching is depicted in FIG. 4. In this example, the matching is for a video content.

Video content segments 2 from a Master database (DB) 6 and a Target DB 1 are processed in parallel by a large number of independent computational Cores 3 that constitute an architecture for generating the Signatures (hereinafter the “Architecture”). Further details on the computational Cores generation are provided below. The independent Cores 3 generate a database of Robust Signatures and Signatures 4 for Target content-segments 5 and a database of Robust Signatures and Signatures 7 for Master content-segments 8. An exemplary and non-limiting process of signature generation for an audio component is shown in detail in FIG. 4. Finally, Target Robust Signatures and/or Signatures are effectively matched, by a matching algorithm 9, to Master Robust Signatures and/or Signatures database to find all matches between the two databases.

To demonstrate an example of the signature generation process, it is assumed, merely for the sake of simplicity and without limitation on the generality of the disclosed embodiments, that the signatures are based on a single frame, leading to certain simplification of the computational cores generation. The Matching System is extensible for signatures generation capturing the dynamics in-between the frames.

The Signatures' generation process is now described with reference to FIG. 5. The first step in the process of signatures generation from a given speech-segment is to breakdown the speech-segment to K patches 14 of random length P and random position within the speech segment 12. The breakdown is performed by the patch generator component 21. The value of the number of patches K, random length P and random position parameters is determined based on optimization, considering the tradeoff between accuracy rate and the number of fast matches required in the flow process of the server 130 and SGS 140. Thereafter, all the K patches are injected in parallel into all computational Cores 3 to generate K response vectors 22, which are fed into a signature generator system 23 to produce a database of Robust Signatures and Signatures 4.

In order to generate Robust Signatures, i.e., Signatures that are robust to additive noise L (where L is an integer equal to or greater than 1) by the Computational Cores 3 a frame ‘i’ is injected into all the Cores 3. Then, Cores 3 generate two binary response vectors: {right arrow over (S)} which is a Signature vector, and {right arrow over (RS)} which is a Robust Signature vector.

For generation of signatures robust to additive noise, such as White-Gaussian-Noise, scratch, etc., but not robust to distortions, such as crop, shift, and rotation, etc., a core Ci={ni} (1≦i≦L) may consist of a single leaky integrate-to-threshold unit (LTU) node or more nodes. The node ni equations are:

$V_{i} = {\sum\limits_{j}\; {w_{ij}k_{j}}}$ n_(i) = (Vi − Th_(x))

where, is a Heaviside step function; w_(ij) is a coupling node unit (CNU) between node i and image component j (for example, grayscale value of a certain pixel j); kj is an image component ‘j’ (for example, grayscale value of a certain pixel j); Thx is a constant Threshold value, where ‘x’ is ‘S’ for Signature and ‘RS’ for Robust Signature; and Vi is a Coupling Node Value.

The Threshold values Thx are set differently for Signature generation and for Robust Signature generation. For example, for a certain distribution of Vi values (for the set of nodes), the thresholds for Signature (Th_(S)) and Robust Signature (Th_(RS)) are set apart, after optimization, according to at least one or more of the following criteria:

1: For V_(i)>Th_(RS)

1−p(V >Th_(S))−1−(1−ε)^(l)<<1

-   i.e., given that l nodes (cores) constitute a Robust Signature of a     certain image I, the probability that not all of these I nodes will     belong to the Signature of same, but noisy image, Ĩ is sufficiently     low (according to a system's specified accuracy).

2: p(V_(i)>Th_(gs))≈l/L

-   i.e., approximately l out of the total L nodes can be found to     generate a Robust Signature according to the above definition.

3: Both Robust Signature and Signature are generated for certain frame i.

It should be understood that the generation of a signature is unidirectional, and typically yields lossless compression, where the characteristics of the compressed data are maintained but the uncompressed data cannot be reconstructed. Therefore, a signature can be used for the purpose of comparison to another signature without the need of comparison to the original data. The detailed description of the Signature generation can be found in U.S. Pat. Nos. 8,326,775 and 8,312,031, assigned to common assignee, which are hereby incorporated by reference for all the useful information they contain.

A Computational Core generation is a process of definition, selection, and tuning of the parameters of the cores for a certain realization in a specific system and application. The process is based on several design considerations, such as:

(a) The Cores should be designed so as to obtain maximal independence, i.e., the projection from a signal space should generate a maximal pair-wise distance between any two cores' projections into a high-dimensional space.

(b) The Cores should be optimally designed for the type of signals, i.e., the Cores should be maximally sensitive to the spatio-temporal structure of the injected signal, for example, and in particular, sensitive to local correlations in time and space. Thus, in some cases a core represents a dynamic system, such as in state space, phase space, edge of chaos, etc., which is uniquely used herein to exploit their maximal computational power.

(c) The Cores should be optimally designed with regard to invariance to a set of signal distortions, of interest in relevant applications.

A detailed description of the Computational Core generation and the process for configuring such cores is discussed in more detail in the above-referenced U.S. Pat. No. 8,655,801.

FIG. 6 is an exemplary and non-limiting flowchart S320 illustrating determination of multimedia content elements that are appropriate to a query according to an embodiment. In S610, a query and a request to determine appropriate multimedia content elements are received. In S620, a signature is generated respective of the query. Signature generation is described further herein above with respect to FIGS. 4 and 5.

In S630, the signature generated respective of the query is compared to each tag assigned to a multimedia content element existing in the plurality of user devices. Signature matching is described in further detail above.

In S640, for each multimedia content element existing in the plurality of user devices, it is determined if at least one respective tag sufficiently matched the signature generated respective of the query. In an embodiment, a tag may sufficiently match a signature if, e.g., the tag and the signature demonstrate signature matching above a predefined threshold. In S650, each multimedia content element associated with at least one tag that demonstrated sufficient matching with the query signature is identified as an appropriate multimedia content element. In S660, each of the appropriate multimedia content elements is returned.

The various embodiments disclosed herein can be implemented as hardware, firmware, software, or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium consisting of parts, or of certain devices and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such a computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.

All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. 

What is claimed is:
 1. A method for sharing tagged multimedia content elements, comprising: receiving a request to analyze at least one multimedia content element that exists on at least a first user device; generating a signature for at least a portion of each of the at least one multimedia content element; generating at least one tag that is searchable by a second user device respective of each of the generated signatures; sending the at least one searchable tag to be stored, wherein the at least one searchable tag is stored such that, responsive to a query received from the second user device, at least one multimedia content element is shared with at least the second user device respective of a match between at least one portion of the query and at least one of the at least one tag.
 2. The method of claim 1, wherein the at least one multimedia content element is at least one of: an image, graphics, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, an images of a signal, and a portion thereof.
 3. The method of claim 1, further comprising: searching a data warehouse for at least one multimedia content element that is similar to the at least one multimedia content element, wherein an identification of the at least one similar multimedia content element is performed based on the at least one signature generated for the received multimedia content element and a signature of the at least one similar multimedia content element stored in the data warehouse; extracting at least one tag associated with the at least one similar multimedia content element; and assigning the at least one extracted tag to the at least one multimedia content element.
 4. The method of claim 3, further comprising: providing a most descriptive tag, based on the at least one extracted tag, by performing any of: correlating between the at least one extracted tag and the at least one searchable tag; and selecting a tag associated with the at least one similar multimedia content element such that its respective signature matches the at least one multimedia content element over a predefined threshold.
 5. The method of claim 1, wherein the generation of the at least one tag is based on at least one concept structure.
 6. The method of claim 5, further comprising: querying a deep-content-classification (DCC) system to find a match between at least one concept structure and the multimedia content element; utilizing metadata associated with the at least one matching concept structure as the at least one tag.
 7. The method of claim 6, further comprising: providing the most descriptive tag based on the at least one extracted tag by correlation of matching concept structures.
 8. The method of claim 1, wherein a tag matches the at least one portion of the query when signatures generated respective of the tag and the query demonstrate signature matching above a predefined threshold.
 9. The method of claim 1, wherein the at least one multimedia content element associated with the matching tag is obtained from the first user device.
 10. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim
 1. 11. A system for sharing tagged multimedia content elements, comprising: a processor; a database; and a memory connected to the processor, the memory contains instructions that when executed by the processor, configure the system to: receive a request to analyze at least one multimedia content element that exists on at least a first user device; generate a signature for at least a portion of each of the at least one multimedia content element; generate at least one tag that is searchable by a second user device respective of each of the generated signatures; send the at least one searchable tag to be stored, wherein the at least one searchable tag is stored such that, responsive to a query received from the second user device, at least one multimedia content element is shared with at least the second user device respective of a match between at least one portion of the query and at least one of the at least one tag.
 12. The system of claim 11, wherein the at least one multimedia content element is at least one of: an image, graphics, a video stream, a video clip, an audio stream, an audio clip, a video frame, a photograph, an images of a signal, and a portion thereof.
 13. The system of claim 11, wherein the system is further configured to: search a data warehouse for at least one multimedia content element that is similar to the at least one multimedia content element, wherein an identification of the at least one similar multimedia content element is performed based on the at least one signature generated for the multimedia content element and a signature of the at least one similar multimedia content element stored in the data warehouse; extract at least one tag associated with the at least one similar multimedia content element; and assign the at least one extracted tag to the at least one multimedia content element received from the user device.
 14. The system of claim 13, wherein the system is further configured to: providing a most descriptive tag based on the at least one extracted tag by performing any of: correlating between the at least one extracted tag and the at least one searchable tag; and selecting a tag associated with the at least one similar multimedia content element such that its respective signature matches the at least one multimedia content element over a predefined threshold.
 15. The system of claim 11, wherein the generation of the at least one tag is based on at least one concept structure.
 16. The system of claim 15, wherein the system is further configured to: query a deep-content-classification (DCC) system to find a match between at least one concept structure and the received multimedia content element; and utilize metadata associated with the at least one matching concept structure as the at least one tag.
 17. The system of claim 15, wherein the system is further configured to: provide the most descriptive tag based on the at least one extracted tag by correlation of matching concept structures.
 18. The system of claim 11, wherein a tag matches the at least one portion of the query when signatures generated respective of the tag and the query demonstrate signature matching above a predefined threshold.
 19. The system of claim 11, wherein the at least one multimedia content element associated with the matching tag is obtained from the first user device. 